Braze Currentsを利用してBrazeのデータをS3にストリーミングできるようにする
BrazeにはCurrentsという機能を使って、Brazeで作成されたデータを他の場所にストリーミングすることが可能です。 これにより専門のプラットフォームで分析したり、可視化したりすることが可能になりますし、別のシステムに使わせたりする といったことが可能です。
現在利用できるパートナーはこちらに記載されています。
本記事では、Brazeからのデータをそのままの生データとして貯めておき、必要になったら取り出して加工したり、他のツールに流したりとかすることを想定をし、S3に保存していきます。
前提条件
AWSのアカウントと保存用のS3バケットが必要です。
すでにS3バケットをお持ちの場合でも、権限を制限できるように、Braze専用の新しいバケットを作成することを勧められています。
AWS側の設定
BrazeとS3の連携では
- シークレットキーを使う
- ロールARNを使う
上記の2種類がありますが、今回はロールARNの設定を行います。
IAMポリシーを作成
AWSのコンソールにログインし、IAMのページからポリシーを作成します。
ポリシーの内容ですが、
Braze Currents用は、
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetBucketLocation"], "Resource": ["arn:aws:s3:::INSERTBUCKETNAME"] }, { "Effect": "Allow", "Action": ["s3:PutObject", "s3:GetObject"], "Resource": ["arn:aws:s3:::INSERTBUCKETNAME/*"] } ] }
を使います。
※ INSERTBUCKETNAMEは作成したs3バケット名に
IAMロールを作成
ポリシーを利用するロールを作成します。
- 信頼されたエンティティタイプは
AWS アカウント
を選択 - AWS アカウントを
別の AWS アカウント
にして、BrazeのアカウントID
を入力 - オプションで
外部 ID を要求する
にチェックをつけ、外部ID
を入力
を行います。
BrazeのアカウントIDと外部IDは、
BrazeのダッシュボードのテクノロジーパートナーのメニューでCurrentsを選択して設定画面に遷移してください。
BrazeアカウントIDとBraze外部ID(表示されなければ新規作成)が表示されているので、この値を使います。
ポリシーは先ほど作成した専用のポリシーを添付し、ロールを作成します。
作成したarnが必要なのでコピーしておきます。
Braze側の設定
BrazeのダッシュボードのテクノロジーパートナーのメニューでCurrentsを選択し、必要な情報を入力します。
ロールARN
に作成したIAMロールのarnを入力AWS S3バケット名前
にはデータを保存するバケット名を入力
AWS S3バケットフォルダーと暗号化は任意です。
一般設定では、エクスポートするイベントを選択していきます。
の2種類がありますので、用途に応じて選択していきます。
設定完了後、ページ下部のLaunch Current
をクリックして作成完了です。
状態がActiveとなっていることを確認します。
データが送信されているか確認
Braze側の設定が終わったら、実際に何かイベントを起こしてデータがS3に送信されているか確認していきます。
セッションの開始、カスタムイベント送信、購入イベントの送信などです。
S3には上記のようにイベントタイプごとに分けられてデータが格納されていました。
データ形式はavroでした。
購入イベントの例
上記は購入イベントのスキーマです。
Glueのクローラーを使ってテーブルを作成し、Athenaでクエリすることも可能です。
このようにBrazeのデータを別の場所に保存しておくと、お使いの分析ツール、BIツールと組み合わせてイベントデータを利用できるようになるのでぜひ使っておきたい機能になります。